<template>
  <el-icon :size="size" :color="color" style="vertical-align: middle;">
    <component v-if="!isIconfontSymbol" :is="componentName"></component>
    <svg v-else aria-hidden="true">
      <use :xlink:href="`#${componentName}`"></use>
    </svg>
  </el-icon>
</template>

<script setup>
import { computed } from 'vue';

const props = defineProps({
  size: {
    type: Number,
    default: 20,
  },
  color: {
    type: String,
    default: 'grey',
  },
  componentName: {
    type: String,
    default: '',
  },
  iconSymbolPrefix: {
    type: String,
    default: 'icon',
  },
})
// 判断是不是iconfont的symbol图标
const isIconfontSymbol = computed(() => {
  let prefixLen = props.iconSymbolPrefix.length;
  if (props.componentName.slice(0, prefixLen) === props.iconSymbolPrefix) {
    return true
  }
  return false
})
</script>

<style lang='scss' scoped></style>